- 풀이 날짜 : 2025.05.22
- ❔ 아이디어는 대략적으로 구상했으나 풀이는 스스로 떠올리지 못해 ChatGPT를 사용했다.
- 문제에서 5kg 봉지와 3kg 봉지가 있으며, 최대한 적은 개수의 봉지를 사용하려면 설탕을 가능한 5kg 봉지에 담아야 한다.
- 하지만 5kg 봉지에 모두 분배가 어렵다면 3kg 봉지를 같이 사용해야 한다.
- 첫 아이디어 구상은 다음과 같이 작성했다.
1. 5로 나누어서 나머지가 0인가
2. 5로 나눈 나머지가 3의 배수인가
3. 5로 나눌 수 없지만 3의 배수인가
4. 5와 3으로 나눈 나머지가 0이 아닌가
- 하지만 위 조건을 만족하는 분기들을 작성하기엔
if문이 너무 길어지며, 일부 숫자들은 조건에 충족하도록 만들기 어려웠다.
- ChatGPT로 아이디어를 정리하고 보니 핵심은 5로 나눈 나머지가 0인가, 그렇지 않다면 3의 배수인가였다.
- 따라서 처음에 5의 배수인지 먼저 확인하고, 5의 배수라면 그 몫을 봉지의 개수에 추가한다.
- 만약 5의 배수가 아니라면 입력 값에서 3을 뺀다. 그리고 봉지의 개수를 1개씩 추가한다.
- 결국 3의 배수라는 것은 3을 계속 더했을 때 그 값이 나오느냐, 반대로 3을 계속 뺀 결과가 0이 되느냐는 의미다.
import java.io.*;
public class Main {
public static void main(String[] args) {
BufferedReader reader;
try {
reader = new BufferedReader(new InputStreamReader(System.in));
// 몰라서 찾아본 문제
int target = Integer.parseInt(reader.readLine());
int box = 0;
while(target>=0) {
// 5로 나눌 수 있는지
if (target % 5 == 0) {
box += target/5;
System.out.println(box);
return;
}
// 3씩 제거
target -= 3;
box++;
}
System.out.println(-1);
} catch (Exception e) {
}
}
}